# Contributor: Tom Gundersen <teg@jklm.no>
# Contributor: Judd <jvinet@zeroflux.org>

pkgbase=libevent
pkgname=(libevent libevent-docs)
pkgver=2.1.12
pkgrel=4
pkgdesc="Event notification library"
url="https://libevent.org/"
arch=(x86_64)
license=(BSD)
depends=(openssl)
makedepends=(cmake ninja python zlib doxygen)
options=(debug)
source=(
  https://github.com/libevent/libevent/releases/download/release-$pkgver-stable/libevent-$pkgver-stable.tar.gz{,.asc}
  EVENT__SIZEOF_TIME_T.patch
  libevent-2.1.12-openssl-compat.patch
)
sha256sums=('92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb'
            'SKIP'
            '945fc885b15692721bc7ae52f5774ef4fab8cc0f6108baa8860ab368de8675cf'
            'e41527c55f6dacc6453b13eeeea2664798496896b796abcd2a5c8304c9eb2bae')
validpgpkeys=('B35BF85BF19489D04E28C33C21194EBB165733EA'
              '9E3AC83A27974B84D1B3401DB86086848EF8686D')

prepare() {
  cd libevent-$pkgver-stable

  # Fix Firefox build
  patch -Np1 -i ../EVENT__SIZEOF_TIME_T.patch

  # Fix build with OpenSSL 3.0
  patch -Np1 -i ../libevent-2.1.12-openssl-compat.patch
}

build() {
  cmake -S libevent-$pkgver-stable -B build -G Ninja \
    -DCMAKE_BUILD_TYPE=None \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_SKIP_INSTALL_RPATH=TRUE \
    -DEVENT__LIBRARY_TYPE=SHARED \
    -DEVENT__DISABLE_REGRESS=OFF \
    -DEVENT__DOXYGEN=ON
  cmake --build build
}

check() {
  cd build
  ctest --output-on-failure --stop-on-failure -j$(nproc)
}

package_libevent() {
  provides=(libevent{,_core,_extra,_openssl,_pthreads}-2.1.so)
  optdepends=('python: event_rpcgen.py')

  DESTDIR="$pkgdir" cmake --install build

  mkdir -p doc/usr/share
  mv {"$pkgdir",doc}/usr/share/doc

  install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 libevent-$pkgver-stable/LICENSE
}

package_libevent-docs() {
  pkgdesc+=" (documentation)"
  depends=()

  mv doc/* "$pkgdir"
}
